/**
 * @description 获取本地文件的url
 * @param folder 文件夹
 * @param name 文件名
 * @param type 文件类型
 * @returns {string}
 */
export function getLocalFileUrl(folder, name, type = 'png') {
  // 去掉首尾的/(做的兼容处理,使开头结尾是否带/都能生效)
  // /home/-> home
  // /home/index/ ->home/index
  folder = folder.replace(/^\/?(.*)\/?$/g, '$1');
  // 别名不生效 只能使用相对路径
  return new URL(`../assets/images/${folder}/${name}.${type}`, import.meta.url).href;
}

/**
 * @description:文件下载(导出)
 * @param {*} response 接口相应的数据
 * @return {*}
 */
export function fileDownload(response) {
  if (!response) {
    return;
  }
  const { data, headers } = response;
  if (!data || !headers) return;
  const fileName = decodeURIComponent(headers['content-disposition'].split(';')[1].split('=')[1]);
  const type = headers['content-type'];
  const url = window.URL.createObjectURL(new Blob([data], { type }));
  const link = document.createElement('a');
  link.style.display = 'none';
  link.href = url;
  link.setAttribute('download', fileName);
  document.body.appendChild(link);
  link.click();
  link.remove();
  window.URL.revokeObjectURL(url);
}

/**
 * @description: 获取路径的最后一部分
 * @param {String} path 路径字符串
 * @return {String}
 */
export function getLastPath(path) {
  return path.substring(path.lastIndexOf('/') + 1);
}

// 获取iframe指定参数值
export function getUrlParam(_url, key) {
  if (_url.lastIndexOf('?') !== -1) {
    var queryStr = _url.substring(_url.lastIndexOf('?') + 1, _url.length)
    if (!key) {
      return queryStr
    } else {
      var params = queryStr.split('&')
      for (var j = 0; j < params.length; j++) {
        var tmp = params[j].split('=')
        if (tmp[0] === key) {
          return tmp[1]
        }
      }
    }
  }
}

/**
 * @param {Object} json 原json对象
 */
export function jsonToFormData(json) {
    const formData = new FormData();
    Object.keys(json).forEach(key => { formData.append(key, json[key]) });
    return formData;
}
